package com.yanqu.road.entity.monopolymarket.resgrab;

import com.yanqu.road.entity.DataObject;
import com.yanqu.road.entity.FieldTypeAnnotation;
import com.yanqu.road.entity.DataStatus;

import java.util.ArrayList;
import java.util.List;

/**
 * @Description
 * @Author cwq
 * @Data 2021/8/23 10:28
 */
@FieldTypeAnnotation(tableName = "t_c_monopolymarket_resgrab_point")
public class MonopolyMarketResGrabPointData extends DataObject {
    @FieldTypeAnnotation(select = true, update = true,desc = "分组id")
    private long groupId;
    @FieldTypeAnnotation(select = true, update = true,desc = "资源点类型 2王帐 3王宫")
    private byte type;
    @FieldTypeAnnotation(desc = "位置索引")
    private int posIndex;
    @FieldTypeAnnotation(desc = "入座玩家id")
    private long userId;
    @FieldTypeAnnotation(desc = "资源入座前的剩余时间 s  ")
    private int remainTime;
    @FieldTypeAnnotation(desc = "上次产出奖励的时间 s  一开始等于入座时间")
    private int receiveLastTime;
    @FieldTypeAnnotation(desc = "上次领取据点奖励的时间 s 点击领取的时间")
    private int produceRewardLastTime;
    @FieldTypeAnnotation(desc = "开采时间 s")
    private int seatTime;
    @FieldTypeAnnotation(desc = "到期时间 s")
    private int endTime;
    @FieldTypeAnnotation(desc = "鼓舞加成 ")
    private int buffValues;
    @FieldTypeAnnotation(desc = "位置上的门客、美女信息")
    private List<IMonopolyMarketObjectInfo> objectInfoList = new ArrayList<>();
    @FieldTypeAnnotation(desc = "上次位置变动时间(s)")
    private int changeTime;

    public long getGroupId() {
        return groupId;
    }
    public void setGroupId(long groupId) {
        if (this.groupId != groupId) {
            this.groupId = groupId;
            setOp(DataStatus.Update);
        }
    }

    public byte getType() {
        return type;
    }
    public void setType(byte type) {
        if (this.type != type ) {
            this.type = type;
            setOp(DataStatus.Update);
        }
    }

    public int getPosIndex() {
        return posIndex;
    }
    public void setPosIndex(int posIndex) {
        if (this.posIndex != posIndex) {
            this.posIndex = posIndex;
            setOp(DataStatus.Update);
        }
    }

    public long getUserId() {
        return userId;
    }
    public void setUserId(long userId) {
        if (this.userId != userId) {
            this.userId = userId;
            setOp(DataStatus.Update);
        }
    }

    public int getRemainTime() {
        return remainTime;
    }
    public void setRemainTime(int remainTime) {
        if (this.remainTime != remainTime) {
            this.remainTime = remainTime;
            setOp(DataStatus.Update);
        }
    }

    public int getReceiveLastTime() {
        return receiveLastTime;
    }
    public void setReceiveLastTime(int receiveLastTime) {
        if (this.receiveLastTime != receiveLastTime) {
            this.receiveLastTime = receiveLastTime;
            setOp(DataStatus.Update);
        }
    }

    public int getSeatTime() {
        return seatTime;
    }
    public void setSeatTime(int seatTime) {
        if (this.seatTime != seatTime) {
            this.seatTime = seatTime;
            setOp(DataStatus.Update);
        }
    }

    public int getEndTime() {
        return endTime;
    }
    public void setEndTime(int endTime) {
        if (this.endTime != endTime) {
            this.endTime = endTime;
            setOp(DataStatus.Update);
        }
    }

    public int getBuffValues() {
        return buffValues;
    }
    public void setBuffValues(int buffValues) {
        if (this.buffValues != buffValues) {
            this.buffValues = buffValues;
            setOp(DataStatus.Update);
        }
    }

    public List<IMonopolyMarketObjectInfo> getObjectInfoList() {
        return objectInfoList;
    }
    public void setObjectInfoList(List<IMonopolyMarketObjectInfo> objectInfoList) {
        if (null == objectInfoList){
            return;
        }
        if (this.objectInfoList == null || !this.objectInfoList.equals(objectInfoList)) {
            this.objectInfoList = objectInfoList;
            setOp(DataStatus.Update);
        }
    }

    public int getChangeTime() {
        return changeTime;
    }
    public void setChangeTime(int changeTime) {
        if (this.changeTime != changeTime) {
            this.changeTime = changeTime;
            setOp(DataStatus.Update);
        }
    }

    public int getProduceRewardLastTime() {
        return produceRewardLastTime;
    }
    public void setProduceRewardLastTime(int produceRewardLastTime) {
        if (this.produceRewardLastTime != produceRewardLastTime) {
            this.produceRewardLastTime = produceRewardLastTime;
            setOp(DataStatus.Update);
        }
    }

}
